std::unordered 您所在的位置:网站首页 unorderd set std::unordered

std::unordered

#std::unordered| 来源: 网络整理| 查看: 265

  C++ 语言 标准库头文件 自立与有宿主实现 具名要求 语言支持库 概念库 (C++20) 诊断库 工具库 字符串库 容器库 迭代器库 范围库 (C++20) 算法库 数值库 本地化库 输入/输出库 文件系统库 (C++17) 正则表达式库 (C++11) 原子操作库 (C++11) 线程支持库 (C++11) 技术规范  容器库 array(C++11) vector deque forward_list(C++11) list set multiset map multimap unordered_set(C++11) unordered_multiset(C++11) unordered_map(C++11) unordered_multimap(C++11) stack queue priority_queue span(C++20)  std::unordered_set 成员函数 unordered_set::unordered_set unordered_set::~unordered_set unordered_set::operator= unordered_set::get_allocator 迭代器 unordered_set::beginunordered_set::cbegin unordered_set::endunordered_set::cend 容量 unordered_set::empty unordered_set::size unordered_set::max_size 修改器 unordered_set::clear unordered_set::insert unordered_set::emplace unordered_set::emplace_hint unordered_set::erase unordered_set::swap unordered_set::extract(C++17) unordered_set::merge(C++17) 查找 unordered_set::count unordered_set::find unordered_set::contains(C++20) unordered_set::equal_range 桶接口 unordered_set::begin(size_type)unordered_set::cbegin(size_type) unordered_set::end(size_type)unordered_set::cend(size_type) unordered_set::bucket_count unordered_set::max_bucket_count unordered_set::bucket_size unordered_set::bucket 哈希策略 unordered_set::load_factor unordered_set::max_load_factor unordered_set::rehash unordered_set::reserve 观察器 unordered_set::hash_function unordered_set::key_eq 非成员函数 operator==operator!=(C++20 前) std::swap erase_if(C++20) 推导指引(C++17)   定义于头文件 template class unordered_set; (1) (C++11 起) namespace pmr {

    template     using unordered_set = std::unordered_set;

} (2) (C++17 起)

unordered_set 是含有 Key 类型唯一对象集合的关联容器。搜索、插入和移除拥有平均常数时间复杂度。

在内部,元素并不以任何特别顺序排序,而是组织进桶中。元素被放进哪个桶完全依赖其值的哈希。这允许对单独元素的快速访问,因为哈希一旦确定,就准确指代元素被放入的桶。

不可修改容器元素(即使通过非 const 迭代器),因为修改可能更改元素的哈希,并破坏容器。

std::unordered_set 满足容器 (Container) 、知分配器容器 (AllocatorAwareContainer) 、无序关联容器 (UnorderedAssociativeContainer) 的要求。

成员类型   成员类型 定义 key_type Key value_type Key size_type 无符号整数类型(通常是 std::size_t ) difference_type 有符号整数类型(通常是 std::ptrdiff_t ) hasher Hash key_equal KeyEqual allocator_type Allocator reference value_type& const_reference const value_type& pointer std::allocator_traits::pointer const_pointer std::allocator_traits::const_pointer iterator 常遗留向前迭代器 (LegacyForwardIterator) const_iterator 常向前迭代器 local_iterator 类别、值、差、指针和引用类型都与 iterator 相同的迭代器类型。能用此迭代器在单个桶迭代,但不能跨桶。 const_local_iterator 类别、值、差、指针和引用类型都与 const_iterator 相同的迭代器类型。能用此迭代器在单个桶迭代,但不能跨桶。 node_type(C++17 起) 表示容器结点的结点把柄特化 insert_return_type(C++17 起) 描述插入 node_type 结果的类型,下列类型的特化 template struct /*unspecified*/ { Iter position; bool inserted; NodeType node; }; ,以模板实参 iterator 和 node_type 实例化。 成员函数 (构造函数) 构造 unordered_set (公开成员函数) (析构函数) 析构 unordered_set (公开成员函数) operator= 赋值给容器 (公开成员函数) get_allocator 返回相关的分配器 (公开成员函数) 迭代器 begin cbegin 返回指向起始的迭代器 (公开成员函数) end cend 返回指向末尾的迭代器 (公开成员函数) 容量 empty 检查容器是否为空 (公开成员函数) size 返回容纳的元素数 (公开成员函数) max_size 返回可容纳的最大元素数 (公开成员函数) 修改器 clear 清除内容 (公开成员函数) insert 插入元素或结点 (C++17 起) (公开成员函数) emplace 原位构造元素 (公开成员函数) emplace_hint 使用提示原位构造元素 (公开成员函数) erase 擦除元素 (公开成员函数) swap 交换内容 (公开成员函数) extract(C++17) 从另一容器释出结点 (公开成员函数) merge(C++17) 从另一容器接合结点 (公开成员函数) 查找 count 返回匹配特定键的元素数量 (公开成员函数) find 寻找带有特定键的元素 (公开成员函数) contains(C++20) 检查容器是否含有带特定键的元素 (公开成员函数) equal_range 返回匹配特定键的元素范围 (公开成员函数) 桶接口 begin(size_type) cbegin(size_type) 返回一个迭代器,指向指定的桶的开始 (公开成员函数) end(size_type) cend(size_type) 返回一个迭代器,指向指定的桶的末尾 (公开成员函数) bucket_count 返回桶数 (公开成员函数) max_bucket_count 返回桶的最大数量 (公开成员函数) bucket_size 返回在特定的桶中的元素数量 (公开成员函数) bucket 返回带有特定键的桶 (公开成员函数) 哈希策略 load_factor 返回每个桶的平均元素数量 (公开成员函数) max_load_factor 管理每个桶的平均元素数量的最大值 (公开成员函数) rehash 为至少为指定数量的桶预留存储空间。这会重新生成哈希表。 (公开成员函数) reserve 为至少为指定数量的元素预留存储空间。这会重新生成哈希表。 (公开成员函数) 观察器 hash_function 返回用于对关键哈希的函数 (公开成员函数) key_eq 返回用于比较键的相等性的函数 (公开成员函数) 非成员函数 operator==operator!=(C++20 中移除) 比较 unordered_set 中的值 (函数模板) std::swap(std::unordered_set)(C++11) 特化 std::swap 算法 (函数模板) erase_if(std::unordered_set)(C++20) 擦除所有满足特定判别标准的元素 (函数模板) 推导指引(C++17 起) 注意

成员类型 iterator 与 const_iterator 可能是同一类型的别名。这表明以二个类型为参数类型的一对函数重载可能违背单一定义规则。因为 iterator 可转换为 const_iterator ,单个以 const_iterator 为参数类型的函数会是有效的。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有